import axios from 'axios';

// 请求拦截器
// 每次发送请求时，都去 sessionStorage 里面检查是否存在 token 字段
// 如果存在，就把 token 添加到 请求 header 里面，以便服务器做用户认证
axios.interceptors.request.use((config) => {
    const token = window.sessionStorage.getItem('token');
    // 请求有请求体，也有请求头信息（header）
    if (token) config.headers.token = token;
    return config;
});

// 响应拦截器
// 如果服务器响应未登录，或者是 token 校验失败时，自动跳转到登录页面，重新进行用户认证
axios.interceptors.response.use((response) => {
    const res = response.data;
    if (res.code === 401) {
        window.location.href = '/login';
    }
    return res;
});

export default axios;
